国庆节假期学了2个新东西,分享下我的学习成果
苏生不惑第
381
篇原创文章,将本公众号设为星标
,第一时间看最新文章。
国庆节7天假期在家学习了下golang和视频剪辑,分享下我的学习成果。
搭建golang环境
下载对应系统的安装包https://go.dev/dl/ ,如果下载慢可以用镜像 https://golang.google.cn/dl/ ,http://mirrors.ustc.edu.cn/golang/ ,https://studygolang.com/dl ,比如Windows系统下载这个https://studygolang.com/dl/golang/go1.19.1.windows-amd64.msi ,如果电脑里已经有go,安装之前会提示卸载旧版本,确定后直接覆盖安装在原来的Go目录。
golang下载公众号话题
之前用python写了个公众号话题批量下载,以这个音频话题为例:https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MjM5NjAxOTU4MA==&action=getalbum&album_id=1777378132866465795&scene=173
输入话题地址的下载效果如图,上千个音频很快就下载完了。
这次用golang重写了下golang 开发入门教程,顺便写了个公众号批量下载工具,代码如下:
package main
import (
"fmt"
"io"
"io/ioutil"
"net/http"
"os"
"regexp"
)
func Exists(path string) bool {
_, err := os.Stat(path)
if err != nil {
if os.IsExist(err) {
return true
}
return false
}
return true
}
func InArray(items []string, item string) bool {
for _, eachItem := range items {
if eachItem == item {
return true
}
}
return false
}
func Dwon() {
defer func() {
if err := recover(); err != nil {
fmt.Print("错误信息:")
fmt.Println(err)
}
}()
var url string
fmt.Print("公众号苏生不惑提示你请输入话题地址:")
fmt.Scanln(&url)
if len(url) == 0 {
panic("话题地址为空")
}
client := &http.Client{}
reqest, err := http.NewRequest("GET", url, nil)
reqest.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 QBCore/4.0.1301.400 QQBrowser/9.0.2524.400 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2875.116 Safari/537.36 NetType/WIFI MicroMessenger/7.0.5 WindowsWechat")
if err != nil {
panic(err)
}
response, _ := client.Do(reqest)
defer response.Body.Close()
bResp, _ := io.ReadAll(response.Body)
content := string(bResp)
var voiceids = regexp.MustCompile(`data-voiceid="(.*)"`).FindAllStringSubmatch(content, -1)
var titles = regexp.MustCompile(`data-title="(.*)" data-voiceid`).FindAllStringSubmatch(content, -1)
fileName := "wechat_topic_audio_list.txt"
// fmt.Print(voiceids, titles)
fileContent, _ := ioutil.ReadFile(fileName)
var voice_urls = regexp.MustCompile(`\n`).Split(string(fileContent), -1)
// fmt.Print(voice_urls)
var f2 *os.File
for k, v := range voiceids {
if InArray(voice_urls, "https://res.wx.qq.com/voice/getvoice?mediaid="+v[1]) {
fmt.Println("已经下载过音频:" + titles[k][1])
continue
}
res, _ := http.Get("https://res.wx.qq.com/voice/getvoice?mediaid=" + v[1])
f, _ := os.Create(titles[k][1] + ".mp3")
io.Copy(f, res.Body)
if Exists(fileName) {
f2, _ = os.OpenFile(fileName, os.O_APPEND, 0666)
} else {
f2, _ = os.Create(fileName)
}
defer f2.Close()
fmt.Println("正在下载音频:" + titles[k][1])
// _, _ = io.WriteString(f2, "https://res.wx.qq.com/voice/getvoice?mediaid="+v[1]+"\n")
// _, _ =f2.Write([]byte("https://res.wx.qq.com/voice/getvoice?mediaid="+v[1]+"\n"))
_, _ = f2.WriteString("https://res.wx.qq.com/voice/getvoice?mediaid=" + v[1] + "\n")
// _, _ = ioutil.WriteFile(fileName, []byte("https://res.wx.qq.com/voice/getvoice?mediaid="+v[1]+"\n"), 0666)
}
fmt.Print("下载完成")
}
下载效果一样的,并且打包生成的exe还支持Windows7:
视频录制剪辑
然后再说视频,视频录制来源是我之前写的微博批量下载工具一键批量下微博内容/图片/视频,获取博主最受欢迎微博,图片查找微博博主,用的工具https://mathewsachin.github.io/Captura/,抓取李健的微博内容/图片/视频:
剪辑用的是剪映https://lv.ulikecam.com/ ,语音识别字幕很好用,用小姐姐的声音代替了我的声音。
第一次剪得很粗糙,有待学习提高,为了这个视频花了我一个下午,点个赞吧,之后我会继续录制更多视频。
最近原创文章:
解除b站番剧区域限制,这个特殊版本的 b 站 app 功能太强了
2022 年 9 月公众号深圳卫健委历史文章无水印封面表情包,分享到网盘了
一键批量下载微信公众号文章内容/图片/封面/视频/音频,支持导出html和pdf格式,包含阅读数/点赞数/在看数/留言数
如果文章对你有帮助还请
点赞/在看/分享
三连支持下, 感谢各位!